package persistence.model;

import persistence.dao.SEEDAO;
import persistence.db.DataSet;

public class SEE extends AbstractModel {

	private int nombreDePeriodes;
	private int idMatiere;
	private int idTypeEnseignement;
	private DataSet services;
	
	/**
	 * Constructeur d'un SEE
	 * @param id identifiant d'un SEE
	 */
	public SEE(int id) {
		setId(id);
		setDao(new SEEDAO(this));
	}
	
	/**
	 * Constructeur d'un SEE
	 * @param id identifiant d'un SEE
	 * @param nbPer nombre de période dans le SEE
	 * @param idMatiere identifiant de la matiere associée
	 * @param idTypeEns identifiant du type d'enseignement associée
	 * @param services
	 */
	public SEE(int id, int nbPer, int idMatiere, int idTypeEns, DataSet services) {
		this(id);
		nombreDePeriodes = nbPer;
		this.idMatiere = idMatiere;
		this.idTypeEnseignement = idTypeEns;
		this.services = services;
	}
	
	public int getNombreDePeriodes() {
		return nombreDePeriodes;
	}

	public void setNombreDePeriodes(int nombreDePeriodes) {
		this.nombreDePeriodes = nombreDePeriodes;
	}
	public int getIdMatiere() {
		return idMatiere;
	}

	public void setIdMatiere(int idMatiere) {
		this.idMatiere = idMatiere;
	}

	public int getIdTypeEnseignement() {
		return idTypeEnseignement;
	}

	public void setIdTypeEnseignement(int idTypeEnseignement) {
		this.idTypeEnseignement = idTypeEnseignement;
	}

	public void setServices(DataSet services) {
		this.services = services;
	}
	
	public Matiere getMatiere() {
		return (Matiere) Matiere.all().get(idMatiere);
	}

	public static DataSet all() {
		SEEDAO seeDAO = new SEEDAO();
		return seeDAO.all();
	}
	
	public DataSet getServices() {
		return services;
	}

	public TypeEnseignement getTypeEnseignement() {
		return (TypeEnseignement) TypeEnseignement.all().get(idTypeEnseignement);	
	}
}
